package day52.org.domain;

import com.fasterxml.jackson.annotation.JsonInclude;
import day52.basic.domain.BaseDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotEmpty;
import java.util.ArrayList;
import java.util.List;

/**
 * 部门
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("部门")
public class Department extends BaseDomain {
    /**
     * 部门编号
     */
    @ApiModelProperty("部门编号")
    @NotEmpty(message = "部门编号不可为空")
    private String sn;
    /**
     * 部门名称
     */
    @ApiModelProperty("部门名称")
    @NotEmpty(message = "部门名称不可为空")
    private String name;
    /**
     * 部门的上级分类层级id
     */
    @ApiModelProperty("部门的上级分类层级id")
    private String dirPath;
    /**
     * 部门状态，1正常，0禁用
     */
    @ApiModelProperty("部门状态，0正常，1禁用")
    private Integer state;
    /**
     * 部门管理员
     */
    @ApiModelProperty("部门管理员")
    private Employee manager;
    /**
     * 部门管理员，关联Employee表id
     */
    @ApiModelProperty("部门管理员，关联Employee表id")
    private Long manager_id;
    /**
     * 部门
     */
    @ApiModelProperty("部门")
    private Department parent;
    /**
     * 上级部门id
     */
    @ApiModelProperty("上级部门id")
    private Long parent_id;
    /**
     * 子级部门
     */
    @JsonInclude(JsonInclude.Include.NON_EMPTY)
    private List<Department> children = new ArrayList<Department>();

}
